10  Selinexor in MF

Comprehensive Topline Results Analysis — Addressing Key Clinical Questions

Author

Ashwin Kishtagari, MD — Vanderbilt University Medical Center

Published

April 1, 2026

11 Executive Summary

ImportantSENTRY Phase 3 Topline Results — Key Takeaways

The Phase 3 SENTRY trial (NCT04562389) of selinexor 60 mg weekly + ruxolitinib versus placebo + ruxolitinib in 353 JAK-inhibitor–naïve myelofibrosis patients reported topline results on March 24, 2026:

  • SVR35 at Week 24 (co-primary): MET — 49.8% vs. 28.0% (OR 2.58; p < 0.0001)
  • Abs-TSS at Week 24 (co-primary): NOT MET — −9.89 vs. −10.86 (p = 0.82)
  • Overall survival (secondary): Nominally significant — HR 0.43 (95% CI 0.19–1.00; p = 0.0222)
  • VAF reduction ≥20% (exploratory): 32% vs. 24%
  • Safety: Consistent with known profiles; Grade ≥3 TEAEs 70.1% vs. 50.0%

12 Trial Design

Show code
design <- tibble(
  Parameter = c(
    "Trial Name / NCT", "Phase", "Design",
    "Patients Enrolled (N)", "Randomization",
    "Treatment Arm", "Control Arm",
    "Platelet Eligibility", "Co-Primary Endpoint 1",
    "Co-Primary Endpoint 2", "Key Secondary Endpoints",
    "Stratification Factors",
    "Data Cutoff"
  ),
  Detail = c(
    "SENTRY / XPORT-MF-034 (NCT04562389)", "Phase 3", 
    "Randomized, double-blind, placebo-controlled, multicenter",
    "353", "2:1 (selinexor + rux : placebo + rux)",
    "Ruxolitinib BID + Selinexor 60 mg QW (28-day cycles)",
    "Ruxolitinib BID + Placebo",
    "Platelets ≥100 × 10⁹/L",
    "SVR35 at Week 24 (≥35% spleen volume reduction by MRI/CT)",
    "Absolute TSS change at Week 24 (MFSAF v4.0, excluding fatigue)",
    "PFS, OS, Hgb stabilization, VAF reduction, BM fibrosis, cytokines",
    "DIPSS risk (Int-1 vs. Int-2/High); Spleen volume (<1800 vs. ≥1800 cm³); Platelets (100–200 vs. >200 × 10⁹/L)",
    "February 20, 2026"
  )
)

design |>
  gt() |>
  tab_header(
    title = md("**SENTRY Trial Design Overview**"),
    subtitle = "Phase 3 Selinexor + Ruxolitinib in JAKi-Naïve Myelofibrosis"
  ) |>
  cols_label(Parameter = "Parameter", Detail = "Detail") |>
  cols_width(Parameter ~ px(220), Detail ~ px(520)) |>
  my_gt_theme()
SENTRY Trial Design Overview
Phase 3 Selinexor + Ruxolitinib in JAKi-Naïve Myelofibrosis
Parameter Detail
Trial Name / NCT SENTRY / XPORT-MF-034 (NCT04562389)
Phase Phase 3
Design Randomized, double-blind, placebo-controlled, multicenter
Patients Enrolled (N) 353
Randomization 2:1 (selinexor + rux : placebo + rux)
Treatment Arm Ruxolitinib BID + Selinexor 60 mg QW (28-day cycles)
Control Arm Ruxolitinib BID + Placebo
Platelet Eligibility Platelets ≥100 × 10⁹/L
Co-Primary Endpoint 1 SVR35 at Week 24 (≥35% spleen volume reduction by MRI/CT)
Co-Primary Endpoint 2 Absolute TSS change at Week 24 (MFSAF v4.0, excluding fatigue)
Key Secondary Endpoints PFS, OS, Hgb stabilization, VAF reduction, BM fibrosis, cytokines
Stratification Factors DIPSS risk (Int-1 vs. Int-2/High); Spleen volume (<1800 vs. ≥1800 cm³); Platelets (100–200 vs. >200 × 10⁹/L)
Data Cutoff February 20, 2026
NoteStatistical Design Details
  • Both co-primary endpoints powered at >80%
  • SVR35 assumption: 40% for ruxolitinib, 70% for selinexor + ruxolitinib
  • Abs-TSS assumption: >4-point delta with SD of 12 for both arms
  • Co-primary endpoints tested sequentially (SVR35 first, then Abs-TSS)

13 Efficacy Results

13.1 Co-Primary Endpoint 1: SVR35

Show code
svr_primary <- tibble(
  Measure = c(
    "SVR35 at Week 24, n (%)",
    "Exact 95% CI",
    "Difference (Sel+Rux − Pbo+Rux)",
    "95% CI of Difference",
    "Odds Ratio (95% CI)",
    "One-Sided P-value (CMH)"
  ),
  `Selinexor + Ruxolitinib (N=235)` = c(
    "117 (49.8%)", "(43.2, 56.4)", "21.82%", "(11.50, 32.14)",
    "2.58 (1.60, 4.17)", ""
  ),
  `Placebo + Ruxolitinib (N=118)` = c(
    "33 (28.0%)", "(20.1, 37.0)", "", "", "", "< 0.0001"
  )
)

svr_primary |>
  gt() |>
  tab_header(
    title = md("**Co-Primary Endpoint: SVR35 at Week 24**"),
    subtitle = "Statistically Significant — Near-Doubling Over Ruxolitinib Alone"
  ) |>
  tab_style(
    style = list(cell_fill(color = "#d5f5e3"), cell_text(weight = "bold")),
    locations = cells_body(rows = 1)
  ) |>
  tab_style(
    style = list(cell_fill(color = "#d5f5e3"), cell_text(weight = "bold")),
    locations = cells_body(rows = 6)
  ) |>
  tab_footnote(
    footnote = "CMH = Cochran-Mantel-Haenszel test stratified by randomization factors. Data cutoff: 2026-02-20.",
    locations = cells_title(groups = "subtitle")
  ) |>
  my_gt_theme()
Co-Primary Endpoint: SVR35 at Week 24
Statistically Significant — Near-Doubling Over Ruxolitinib Alone1
Measure Selinexor + Ruxolitinib (N=235) Placebo + Ruxolitinib (N=118)
SVR35 at Week 24, n (%) 117 (49.8%) 33 (28.0%)
Exact 95% CI (43.2, 56.4) (20.1, 37.0)
Difference (Sel+Rux − Pbo+Rux) 21.82%
95% CI of Difference (11.50, 32.14)
Odds Ratio (95% CI) 2.58 (1.60, 4.17)
One-Sided P-value (CMH) < 0.0001
1 CMH = Cochran-Mantel-Haenszel test stratified by randomization factors. Data cutoff: 2026-02-20.

13.1.1 SVR35 Over Time

Show code
svr_time <- tibble(
  Timepoint = c("Week 12", "Week 24", "Week 36", "Any Timepoint"),
  Sel_n = c(116, 117, 97, 159),
  Sel_N = c(235, 235, 207, 235),
  Pbo_n = c(24, 33, 23, 53),
  Pbo_N = c(118, 118, 100, 118)
) |>
  mutate(Sel_pct = Sel_n / Sel_N * 100, Pbo_pct = Pbo_n / Pbo_N * 100)

svr_time |>
  transmute(
    Timepoint,
    `Sel+Rux` = paste0(Sel_n, "/", Sel_N, " (", sprintf("%.1f%%", Sel_pct), ")"),
    `Pbo+Rux` = paste0(Pbo_n, "/", Pbo_N, " (", sprintf("%.1f%%", Pbo_pct), ")")
  ) |>
  gt() |>
  tab_header(
    title = md("**SVR35 Response Over Time**"),
    subtitle = "Rapid onset by Week 12 with sustained response through Week 36"
  ) |>
  my_gt_theme()
SVR35 Response Over Time
Rapid onset by Week 12 with sustained response through Week 36
Timepoint Sel+Rux Pbo+Rux
Week 12 116/235 (49.4%) 24/118 (20.3%)
Week 24 117/235 (49.8%) 33/118 (28.0%)
Week 36 97/207 (46.9%) 23/100 (23.0%)
Any Timepoint 159/235 (67.7%) 53/118 (44.9%)
Show code
svr_plot_data <- tibble(
  Timepoint = rep(c("Week 12", "Week 24", "Week 36", "Any\nTimepoint"), 2),
  Arm       = rep(c("Selinexor + Ruxolitinib", "Placebo + Ruxolitinib"), each = 4),
  Pct       = c(49.4, 49.8, 46.9, 67.7,   20.3, 28.0, 23.0, 44.9)
) |>
  mutate(
    Timepoint = factor(Timepoint, levels = c("Week 12", "Week 24", "Week 36", "Any\nTimepoint")),
    Arm = factor(Arm, levels = c("Selinexor + Ruxolitinib", "Placebo + Ruxolitinib"))
  )

ggplot(svr_plot_data, aes(x = Timepoint, y = Pct, fill = Arm)) +
  geom_col(position = position_dodge(0.8), width = 0.7) +
  geom_text(aes(label = paste0(round(Pct, 1), "%")),
            position = position_dodge(0.8), vjust = -0.5,
            fontface = "bold", size = 3.8) +
  scale_fill_manual(values = c("Selinexor + Ruxolitinib" = pal$sel,
                                "Placebo + Ruxolitinib"   = pal$pbo)) +
  scale_y_continuous(limits = c(0, 82), breaks = seq(0, 80, 20),
                     labels = function(x) paste0(x, "%")) +
  labs(title = "SVR35 Response Rates — SENTRY Phase 3",
       subtitle = "Near-doubling of spleen response maintained through Week 36",
       x = NULL, y = "SVR35 (%)", fill = NULL) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "top", plot.title = element_text(face = "bold"),
        panel.grid.major.x = element_blank())

SVR35 Response Rates Over Time — Selinexor + Ruxolitinib vs. Placebo + Ruxolitinib

13.2 Co-Primary Endpoint 2: Absolute TSS Change

Show code
tss_data <- tibble(
  Measure = c(
    "Baseline n", "Baseline Median TSS", "Baseline Mean TSS (SD)",
    "Adjusted Abs Mean Change at Wk 24 (95% CI)",
    "Adjusted Mean Difference (95% CI)",
    "One-Sided P-value"
  ),
  `Selinexor + Ruxolitinib (N=235)` = c(
    "235", "21.71", "22.74 (11.88)",
    "−9.89 (−11.19, −8.59)", "", ""
  ),
  `Placebo + Ruxolitinib (N=118)` = c(
    "117", "19.57", "22.23 (13.03)",
    "−10.86 (−12.58, −9.14)", "0.97 (−1.07, 3.02)", "0.8246"
  )
)

tss_data |>
  gt() |>
  tab_header(
    title = md("**Co-Primary Endpoint: Absolute TSS Change at Week 24**"),
    subtitle = md("**NOT MET** — Similar symptom improvement in both arms")
  ) |>
  tab_style(
    style = list(cell_fill(color = "#fadbd8"), cell_text(weight = "bold")),
    locations = cells_body(rows = 6)
  ) |>
  tab_footnote(
    footnote = "TSS = sum of 6 MFSAF v4.0 symptoms (excluding fatigue); range 0–60. MMRM adjusted for stratification factors, sex, and baseline TSS.",
    locations = cells_title(groups = "subtitle")
  ) |>
  my_gt_theme()
Co-Primary Endpoint: Absolute TSS Change at Week 24
NOT MET — Similar symptom improvement in both arms1
Measure Selinexor + Ruxolitinib (N=235) Placebo + Ruxolitinib (N=118)
Baseline n 235 117
Baseline Median TSS 21.71 19.57
Baseline Mean TSS (SD) 22.74 (11.88) 22.23 (13.03)
Adjusted Abs Mean Change at Wk 24 (95% CI) −9.89 (−11.19, −8.59) −10.86 (−12.58, −9.14)
Adjusted Mean Difference (95% CI) 0.97 (−1.07, 3.02)
One-Sided P-value 0.8246
1 TSS = sum of 6 MFSAF v4.0 symptoms (excluding fatigue); range 0–60. MMRM adjusted for stratification factors, sex, and baseline TSS.

13.3 Overall Survival & VAF Reduction

Show code
os_data <- tibble(
  Measure = c("Deaths, n (%)", "Median OS Follow-up (months, 95% CI)",
              "Hazard Ratio (95% CI)", "Nominal P-value (log-rank)"),
  `Selinexor + Rux (N=235)` = c("11 (4.7%)", "11.56 (10.71, 13.01)", "0.43 (0.19, 1.00)", ""),
  `Placebo + Rux (N=118)` = c("12 (10.2%)", "12.58 (10.61, 13.93)", "", "0.0222")
)

os_data |>
  gt() |>
  tab_header(title = md("**Secondary Endpoint: Overall Survival**"),
             subtitle = "Nominally Significant — >50% Reduction in Risk of Death") |>
  tab_style(style = list(cell_fill(color = "#d5f5e3"), cell_text(weight = "bold")),
            locations = cells_body(rows = 3)) |>
  my_gt_theme()
Secondary Endpoint: Overall Survival
Nominally Significant — >50% Reduction in Risk of Death
Measure Selinexor + Rux (N=235) Placebo + Rux (N=118)
Deaths, n (%) 11 (4.7%) 12 (10.2%)
Median OS Follow-up (months, 95% CI) 11.56 (10.71, 13.01) 12.58 (10.61, 13.93)
Hazard Ratio (95% CI) 0.43 (0.19, 1.00)
Nominal P-value (log-rank) 0.0222

14 Safety Profile

Show code
safety <- tibble(
  `Adverse Event` = c("Thrombocytopenia (any)", "Anemia (any)", "Nausea (any)",
                      "Constipation (any)", "Neutropenia (any)", "Grade ≥3 TEAEs",
                      "TEAEs → Discontinuation", "Leukemic Transformation"),
  `Sel + Rux (N=234)` = c("139 (59.4%)", "134 (57.3%)", "134 (57.3%)", "74 (31.6%)",
                           "63 (26.9%)", "164 (70.1%)", "34 (14.5%)", "1.7%"),
  `Pbo + Rux (N=116)` = c("50 (43.1%)", "67 (57.8%)", "20 (17.2%)", "42 (36.2%)",
                           "10 (8.6%)", "58 (50.0%)", "10 (8.6%)", "1.7%")
)

safety |>
  gt() |>
  tab_header(title = md("**Safety and Tolerability — SENTRY Phase 3**"),
             subtitle = "Five Most Common TEAEs in the Combination Arm") |>
  tab_style(style = cell_fill(color = "#fdebd0"),
            locations = cells_body(rows = `Adverse Event` == "Grade ≥3 TEAEs")) |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(rows = `Adverse Event` == "TEAEs → Discontinuation")) |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(rows = `Adverse Event` == "Leukemic Transformation")) |>
  my_gt_theme()
Safety and Tolerability — SENTRY Phase 3
Five Most Common TEAEs in the Combination Arm
Adverse Event Sel + Rux (N=234) Pbo + Rux (N=116)
Thrombocytopenia (any) 139 (59.4%) 50 (43.1%)
Anemia (any) 134 (57.3%) 67 (57.8%)
Nausea (any) 134 (57.3%) 20 (17.2%)
Constipation (any) 74 (31.6%) 42 (36.2%)
Neutropenia (any) 63 (26.9%) 10 (8.6%)
Grade ≥3 TEAEs 164 (70.1%) 58 (50.0%)
TEAEs → Discontinuation 34 (14.5%) 10 (8.6%)
Leukemic Transformation 1.7% 1.7%

15 Clinical Analysis: Addressing Key Questions

15.1 Q1: Initial Thoughts on the Topline Data

The SENTRY trial delivered a mixed but clinically meaningful result. The study met one of two co-primary endpoints with a robust SVR35 signal, but completely missed on symptoms. Key observations:

  • The SVR35 result is unambiguously positive. A near-doubling (49.8% vs. 28.0%, p < 0.0001) is statistically robust and clinically meaningful by any standard in MF
  • The TSS failure is not just a miss — it’s a non-signal. The adjusted mean difference of +0.97 (favoring the control arm) with p = 0.82 shows no trend whatsoever toward symptom improvement. This is worse than MANIFEST-2’s near-miss (p = 0.055)
  • The OS and VAF signals add important secondary dimensions that need maturation but provide biological plausibility for the spleen response benefit
  • Safety is consistent with expectations — no new signals, but the burden is real (70% Grade ≥3, 57% nausea)

As Dr. Rampal noted in the investigator call, the kinetics of response are particularly compelling: the 49% SVR35 threshold was achieved by Week 12, with only slight deepening in the ruxolitinib arm to 28% by Week 24. This rapid onset is a genuine clinical advantage.

15.2 Q2: How Significant and Competitive Is the SVR35 Improvement?

Show code
benchmark <- tibble(
  Trial = c("PERSIST-1\nPacritinib", "Simplify-1\nMomelotinib",
            "SENTRY\nPbo+Rux arm", "MANIFEST-2\nPbo+Rux arm",
            "JAKARTA\nFedratinib", "COMFORT-I\nRuxolitinib",
            "SENTRY\nSel+Rux", "MANIFEST-2\nPela+Rux"),
  SVR35 = c(19, 26.5, 28.0, 35.2, 36.5, 41.9, 49.8, 65.9),
  Category = c("JAKi Mono", "JAKi Mono", "Control Arm", "Control Arm",
               "JAKi Mono", "JAKi Mono", "Selinexor Combo", "BET-i Combo")
) |> mutate(Trial = factor(Trial, levels = Trial))

ggplot(benchmark, aes(x = Trial, y = SVR35, fill = Category)) +
  geom_col(width = 0.7) +
  geom_text(aes(label = paste0(SVR35, "%")), vjust = -0.4, fontface = "bold", size = 3.8) +
  geom_hline(yintercept = 50, linetype = "dashed", color = pal$red, linewidth = 0.8) +
  annotate("text", x = 2, y = 53, label = "50% competitive threshold",
           color = pal$red, fontface = "italic", size = 3.2) +
  scale_fill_manual(values = c("JAKi Mono" = pal$pbo, "Control Arm" = "#bdc3c7",
                                "Selinexor Combo" = pal$sel, "BET-i Combo" = pal$pela)) +
  scale_y_continuous(limits = c(0, 78), labels = function(x) paste0(x, "%")) +
  labs(title = "SVR35 at Week 24 — Cross-Trial Comparison",
       subtitle = "Frontline MF trials (indirect comparison; populations differ)",
       x = NULL, y = "SVR35 (%)", fill = NULL) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "top", plot.title = element_text(face = "bold"),
        axis.text.x = element_text(size = 9, lineheight = 1.1),
        panel.grid.major.x = element_blank())

SVR35 at Week 24 Across Frontline MF Trials

The SVR35 improvement is significant but needs contextualization:

  • The absolute rate of 49.8% is respectable but falls below the 65.9% achieved by pelabresib + ruxolitinib in MANIFEST-2
  • The control arm SVR35 of 28% is notably lower than COMFORT-I’s 41.9% and MANIFEST-2’s 35.2%. During the investigator call, Dr. Rampal addressed this directly, noting that ruxolitinib SVR35 rates across Phase 3 trials have ranged from the “high twenties to high thirties” and that the SENTRY control arm is within historical parameters
  • The treatment effect delta of 21.8 percentage points is clinically meaningful, though the lower control arm partially inflates this relative difference
  • Rapidity is a genuine differentiator: 49% SVR35 at Week 12 (vs. 20% control), and the response was sustained at Week 36 (47% vs. 23%)
  • At any timepoint, 67.7% of combination patients achieved SVR35 vs. 44.9% with ruxolitinib alone
Show code
context_data <- tibble(
  Trial = c("COMFORT-I\n(Rux vs Pbo)", "MANIFEST-2\n(Pela+Rux vs Rux)", "SENTRY\n(Sel+Rux vs Rux)"),
  Combo = c(41.9, 65.9, 49.8), Control = c(0.7, 35.2, 28.0)
) |> mutate(Delta = Combo - Control, Trial = factor(Trial, levels = Trial))

ctx_long <- context_data |>
  pivot_longer(cols = c(Combo, Control), names_to = "Arm", values_to = "SVR35") |>
  mutate(Arm = ifelse(Arm == "Combo", "Treatment", "Control"))

ggplot(ctx_long, aes(x = Trial, y = SVR35, fill = Arm)) +
  geom_col(position = position_dodge(0.7), width = 0.6) +
  geom_text(aes(label = paste0(SVR35, "%")), position = position_dodge(0.7),
            vjust = -0.4, fontface = "bold", size = 3.8) +
  geom_label(data = context_data,
             aes(x = Trial, y = (Combo + Control) / 2, label = paste0("Δ ", round(Delta, 1), "%")),
             inherit.aes = FALSE, fill = "white", size = 3.2, label.size = 0.3, color = pal$red) +
  scale_fill_manual(values = c("Treatment" = pal$sel, "Control" = pal$pbo)) +
  scale_y_continuous(limits = c(0, 78), labels = function(x) paste0(x, "%")) +
  labs(title = "SVR35 Treatment Effect in Context",
       subtitle = "The magnitude of Δ depends heavily on control arm performance",
       x = NULL, y = "SVR35 at Week 24 (%)", fill = NULL) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "top", plot.title = element_text(face = "bold"),
        panel.grid.major.x = element_blank())

Treatment Effect in Context — Control Arm Performance Matters

15.3 Q3–Q5: TSS Failure — Interpretation and Implications

15.3.1 Why Was There No Symptom Improvement?

The Abs-TSS failure (−9.89 vs. −10.86; p = 0.82) is the most important negative finding in SENTRY. Several factors explain it:

  • Both arms improved substantially. A ~10-point TSS reduction from a baseline of ~22 points represents a clinically meaningful ~45% reduction in symptom burden. Ruxolitinib is an excellent symptom-controlling agent through JAK-STAT-mediated cytokine suppression
  • Biological ceiling for symptom improvement. Adding XPO1 inhibition on top of ruxolitinib does not further reduce the inflammatory cytokine milieu that drives constitutional symptoms. The mechanism of selinexor (nuclear export inhibition → c-myc reduction, p53 retention, IκBα-mediated NF-κB suppression) acts on different pathways than those directly responsible for MF symptoms
  • Fatigue exclusion worked in selinexor’s favor — and it still failed. The MFSAF v4.0 excluded fatigue from the TSS, which should have helped selinexor given that fatigue is a known AE. Despite this, no separation was seen
  • Relatively modest baseline symptom burden. Median TSS of ~20–22/60 left limited room for differential improvement

15.3.2 TSS as an Endpoint Across MF Trials

Show code
tss_trials <- tibble(
  Trial = c("COMFORT-I", "MANIFEST-2", "TRANSFORM-1", "SENTRY"),
  Combination = c("Ruxolitinib", "Pelabresib + Rux", "Navitoclax + Rux", "Selinexor + Rux"),
  `TSS Endpoint` = c("TSS50 at Wk 24", "TSS50 at Wk 24", "TSS50 at Wk 24", "Abs-TSS at Wk 24"),
  `Treatment Arm` = c("45.9%", "52.3%", "~49%", "−9.89 pts"),
  `Control Arm` = c("5.3% (placebo)", "46.3%", "~37%", "−10.86 pts"),
  `P-value` = c("<0.001", "0.055 (NS)", "NS", "0.82 (NS)"),
  `Met Endpoint?` = c("Yes", "No", "No", "No")
)

tss_trials |>
  gt() |>
  tab_header(title = md("**TSS Endpoints Across Frontline MF Phase 3 Trials**"),
             subtitle = "A pattern of failure when adding to ruxolitinib backbone") |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(columns = `Met Endpoint?`, rows = `Met Endpoint?` == "Yes")) |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(columns = `Met Endpoint?`, rows = `Met Endpoint?` == "No")) |>
  my_gt_theme()
TSS Endpoints Across Frontline MF Phase 3 Trials
A pattern of failure when adding to ruxolitinib backbone
Trial Combination TSS Endpoint Treatment Arm Control Arm P-value Met Endpoint?
COMFORT-I Ruxolitinib TSS50 at Wk 24 45.9% 5.3% (placebo) <0.001 Yes
MANIFEST-2 Pelabresib + Rux TSS50 at Wk 24 52.3% 46.3% 0.055 (NS) No
TRANSFORM-1 Navitoclax + Rux TSS50 at Wk 24 ~49% ~37% NS No
SENTRY Selinexor + Rux Abs-TSS at Wk 24 −9.89 pts −10.86 pts 0.82 (NS) No
WarningA Pattern, Not An Anomaly

Three consecutive Phase 3 frontline MF combination trials (MANIFEST-2, TRANSFORM-1, SENTRY) have all failed to meet TSS endpoints when added to ruxolitinib. This is no longer a trial-specific finding — it reflects a fundamental biological reality that ruxolitinib saturates symptom control and additional mechanisms cannot reliably improve upon it. Future trial designs need to account for this.

15.3.3 Did I Expect Symptom Improvement?

No. Given the mechanism of action and the precedent from MANIFEST-2 and TRANSFORM-1, there was no strong biological rationale to expect selinexor would augment symptom control beyond what ruxolitinib provides. The XPO1 inhibition mechanism primarily targets clonal suppression (c-myc, p53) and NF-κB modulation — these are more relevant to spleen reduction and disease modification than to patient-reported symptoms, which are predominantly cytokine-driven and already well-controlled by JAK inhibition.

15.4 Q6–Q8: SVR35 as an Endpoint and Disease Modification

15.4.1 Does SVR35 Improvement Predict TSS Improvement?

No — and SENTRY definitively proves this dissociation. The 49.8% SVR35 rate with essentially zero TSS improvement demonstrates that spleen volume reduction and symptom burden are partially independent clinical dimensions in MF. This has important implications:

  • Spleen reduction reflects mechanical/organ-level response (reduction in extramedullary hematopoiesis and clonal proliferation)
  • Symptoms reflect systemic inflammatory burden (cytokine-mediated)
  • A drug can improve one without the other
  • Both should be evaluated, but expecting them to always co-travel is biologically incorrect

15.4.2 What Endpoints Would Capture Disease Modification?

Current standard endpoints (SVR35, TSS) were designed for JAK inhibitor development and primarily capture symptomatic/palliative benefit. True disease modification requires different measures:

Show code
dm_endpoints <- tibble(
  Endpoint = c(
    "Variant allele frequency (VAF) reduction",
    "Bone marrow fibrosis grade improvement",
    "Overall survival",
    "Leukemia-free survival / transformation rate",
    "Cytogenetic / karyotype response",
    "Hemoglobin stabilization / transfusion independence",
    "Durability of response (DOR)",
    "Driver mutation clearance (MRD)"
  ),
  `What It Measures` = c(
    "Clonal burden reduction in JAK2/CALR/MPL",
    "Reversal of marrow fibrotic remodeling",
    "Ultimate clinical benefit",
    "Prevention of disease progression",
    "Resolution of adverse cytogenetics",
    "Restoration of effective hematopoiesis",
    "Sustained biological control vs. transient palliation",
    "Deep molecular response / potential cure"
  ),
  `Current Status` = c(
    "Exploratory in most trials; SENTRY showed 32% vs 24%",
    "Exploratory; data pending for SENTRY",
    "Secondary in SENTRY; HR 0.43 (nominal)",
    "SENTRY: 1.7% in both arms (no difference)",
    "Rarely assessed in MF trials",
    "Secondary in SENTRY; data pending",
    "Not yet reported for SENTRY",
    "Not routinely assessed; technically challenging"
  ),
  `Strength of Evidence` = c(
    "Moderate — correlates with outcomes in IFN studies",
    "Strong — predicts OS in some studies",
    "Gold standard but requires long follow-up",
    "Important but rare events need large N",
    "Limited data in MF",
    "Moderate — relevant for anemia-predominant MF",
    "High — distinguishes disease mod from palliation",
    "Very early; not yet validated in MF"
  )
)

dm_endpoints |>
  gt() |>
  tab_header(title = md("**Endpoints for Disease Modification in Myelofibrosis**"),
             subtitle = "Beyond SVR35 and TSS") |>
  cols_width(Endpoint ~ px(180), `What It Measures` ~ px(200),
             `Current Status` ~ px(200), `Strength of Evidence` ~ px(200)) |>
  my_gt_theme()
Endpoints for Disease Modification in Myelofibrosis
Beyond SVR35 and TSS
Endpoint What It Measures Current Status Strength of Evidence
Variant allele frequency (VAF) reduction Clonal burden reduction in JAK2/CALR/MPL Exploratory in most trials; SENTRY showed 32% vs 24% Moderate — correlates with outcomes in IFN studies
Bone marrow fibrosis grade improvement Reversal of marrow fibrotic remodeling Exploratory; data pending for SENTRY Strong — predicts OS in some studies
Overall survival Ultimate clinical benefit Secondary in SENTRY; HR 0.43 (nominal) Gold standard but requires long follow-up
Leukemia-free survival / transformation rate Prevention of disease progression SENTRY: 1.7% in both arms (no difference) Important but rare events need large N
Cytogenetic / karyotype response Resolution of adverse cytogenetics Rarely assessed in MF trials Limited data in MF
Hemoglobin stabilization / transfusion independence Restoration of effective hematopoiesis Secondary in SENTRY; data pending Moderate — relevant for anemia-predominant MF
Durability of response (DOR) Sustained biological control vs. transient palliation Not yet reported for SENTRY High — distinguishes disease mod from palliation
Driver mutation clearance (MRD) Deep molecular response / potential cure Not routinely assessed; technically challenging Very early; not yet validated in MF

15.4.3 How Should Future MF Trials Be Designed?

The failure of TSS across multiple trials demands a rethinking of MF trial design:

  • Co-primary endpoints should be reconsidered. Pairing SVR35 with TSS when both are expected to fail on TSS creates an unnecessary hurdle. Consider SVR35 as the sole primary with TSS as a key secondary
  • Disease modification endpoints should be elevated. VAF reduction, fibrosis improvement, and OS should be pre-specified as powered secondary endpoints, not exploratory
  • Composite endpoints (e.g., SVR35 + hemoglobin improvement + VAF reduction) may better capture multi-dimensional benefit
  • Longer primary assessment windows (Week 48 instead of Week 24) would better capture disease-modifying effects
  • Biomarker-enriched designs (e.g., stratifying by mutation type, VAF burden, or cytogenetic risk) could identify patients most likely to benefit from specific combinations

15.5 Q9–Q11: Overall Survival Signal

15.5.1 Thoughts on the OS Signal

Show code
os_compare <- tibble(
  Trial = c("COMFORT-I (Rux vs Pbo, 51 wk)", "SENTRY (Sel+Rux vs Rux, 12 mo)"),
  HR = c(0.50, 0.43),
  Lower = c(0.25, 0.19),
  Upper = c(0.98, 1.00),
  Events = c("~28 vs ~27", "11 vs 12"),
  P = c("0.04", "0.022 (nominal)")
)

ggplot(os_compare, aes(y = Trial, x = HR)) +
  geom_point(size = 4, color = pal$sel) +
  geom_errorbarh(aes(xmin = Lower, xmax = Upper), height = 0.2, linewidth = 1, color = pal$sel) +
  geom_vline(xintercept = 1, linetype = "dashed", color = "grey40") +
  scale_x_continuous(limits = c(0, 1.5), breaks = seq(0, 1.5, 0.25)) +
  labs(title = "Overall Survival Hazard Ratios — Frontline MF Trials",
       subtitle = "Both signals are early and require maturation",
       x = "Hazard Ratio (95% CI)", y = NULL) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))

Overall Survival — SENTRY vs. Historical MF Trial OS Data

The OS signal (HR 0.43, 95% CI 0.19–1.00, nominal p = 0.0222) is intriguing but must be interpreted with extreme caution:

  • Only 23 total deaths (11 vs. 12) with median follow-up of ~12 months — far too few events for definitive conclusions
  • The 95% CI touches 1.00 — the signal is on the boundary of statistical significance
  • This is a secondary endpoint with a nominal p-value — not adjusted for multiplicity
  • However, the magnitude (>50% risk reduction) and biological plausibility (spleen response predicting OS, per Coltro et al. data cited by Karyopharm) make this worth pursuing
  • Post-hoc landmark analyses suggesting SVR35 may predict OS add mechanistic support

15.5.2 What Data Do We Need as OS Matures?

  • Longer follow-up (≥24 months) with more events to narrow the confidence interval
  • Kaplan-Meier curves — we have not seen these yet; the shape of separation matters enormously
  • OS by SVR35 response status — does achieving SVR35 predict OS within each arm?
  • OS by DIPSS risk category — is the benefit concentrated in higher-risk patients?
  • Cause of death data — to distinguish MF-related mortality from competing causes
  • Post-study therapy details — did control arm patients have access to effective salvage?
  • Patient retention data — the investigator call emphasized keeping patients on study for follow-up even after treatment discontinuation, which is critical for reliable OS assessment

15.5.3 Will FDA Weigh the OS Signal?

The FDA will view the OS data as supportive but not sufficient for the following reasons:

  • It is a secondary endpoint and therefore not part of the formal hypothesis testing hierarchy
  • The event count is too low and the CI is too wide
  • However, in the context of a disease where OS is the ultimate endpoint and where no frontline combination has demonstrated OS benefit, the FDA may give this signal meaningful weight in their benefit-risk assessment
  • The FDA has historically accepted SVR35 alone for MF approval (COMFORT-I), and the SENTRY OS data strengthens the argument that SVR35 improvement translates to clinical benefit
  • If OS data mature to a more convincing level by the time of the sNDA submission, it could become the pivotal supporting data point for approval

15.6 Q12–Q13: VAF Reduction and Disease Modification

Show code
vaf_plot <- tibble(
  Arm = c("Selinexor +\nRuxolitinib\n(n=169)", "Placebo +\nRuxolitinib\n(n=92)"),
  Pct = c(32, 24)
)

ggplot(vaf_plot, aes(x = Arm, y = Pct, fill = Arm)) +
  geom_col(width = 0.55) +
  geom_text(aes(label = paste0(Pct, "%")), vjust = -0.5, fontface = "bold", size = 5) +
  scale_fill_manual(values = c(pal$sel, pal$pbo)) +
  scale_y_continuous(limits = c(0, 42), labels = function(x) paste0(x, "%")) +
  labs(title = "≥20% VAF Reduction in Driver Mutations (JAK2 / CALR / MPL)",
       subtitle = "Pre-specified exploratory endpoint — Week 24",
       x = NULL, y = "Proportion (%)") +
  theme_minimal(base_size = 13) +
  theme(legend.position = "none", plot.title = element_text(face = "bold"),
        panel.grid.major.x = element_blank())

VAF Reduction (≥20%) at Week 24 — SENTRY Exploratory Endpoint

15.6.1 Does This Look Like Disease Modification?

Not convincingly — but the signal is in the right direction. Here is my framework:

  • The 8 percentage-point difference (32% vs. 24%) is modest and exploratory — no formal statistical testing was presented
  • Ruxolitinib itself achieves VAF reduction in some patients, so the 24% in the control arm is expected. The incremental benefit of selinexor is small
  • True disease modification requires evidence of:
    • Sustained and deepening VAF reduction over time (not just a snapshot at Week 24)
    • Correlation between VAF reduction and clinical outcomes (OS, PFS, transfusion independence)
    • Bone marrow fibrosis improvement — this is the most direct histological evidence and we do not yet have it from SENTRY
    • Normalization of hematopoiesis — improvement in blood counts, reduction in blasts
  • For comparison, interferon-alpha achieves molecular responses (including complete molecular remission) in a subset of MPN patients, and INCA033989 in mutCALR ET shows 44% achieving ≥20% VAF reduction with selective depletion of mutant stem cells — these are more convincing disease modification signals
  • The XPO1 mechanism (p53 nuclear retention → apoptosis, c-myc suppression → reduced clonal proliferation) provides biological plausibility for clonal suppression, but the Phase 3 data show only a modest incremental effect

What disease modification looks like to me:

  • ≥50% VAF reduction in a meaningful proportion of patients (>20–25%)
  • Bone marrow fibrosis grade improvement (MF-3 → MF-2 or lower)
  • Sustained and durable responses that deepen over time
  • Correlation between molecular/histological responses and OS/PFS

15.7 Q14–Q15: Safety Data and Nausea

15.7.1 Safety Assessment

The safety profile is consistent with expectations but adds meaningful burden:

  • No new safety signals — this is reassuring and confirms the known profiles of both drugs
  • Grade ≥3 TEAEs: 70.1% vs. 50.0% — a 20 percentage-point absolute increase is clinically significant
  • Thrombocytopenia (59% vs. 43%) and neutropenia (27% vs. 9%) are expected given the overlapping myelosuppressive effects
  • Anemia was equivalent (57% vs. 58%) — notably, selinexor did not worsen anemia
  • Leukemic transformation was identical (1.7% both arms) — important for the disease modification narrative; XPO1 inhibition is not accelerating transformation
  • Discontinuation rate of 14.5% vs. 8.6% — a ~6% absolute increase, which is manageable but not trivial

15.7.2 Nausea Assessment

57.3% any-grade nausea is significant but manageable with proactive antiemetics:

  • This is lower than the 79% seen in the Phase 1 (likely due to better prophylaxis in Phase 3)
  • Selinexor-associated nausea is well-characterized from the myeloma experience (XPOVIO approval)
  • Effective management requires pre-treatment with 5-HT3 antagonists (ondansetron) ± NK1 receptor antagonists
  • The fact that TSS (which excluded fatigue) showed no worsening suggests nausea was manageable enough not to detrimentally impact overall symptom burden — Dr. Rampal specifically noted this during the investigator call
  • Acceptable level of nausea: In MF patients, where the disease carries significant morbidity and 4–5 year median survival in intermediate/high-risk disease, Grade 1–2 nausea that is prophylactically manageable is acceptable if accompanied by meaningful clinical benefit (SVR35 improvement, potential OS benefit). Grade 3 nausea rates will be important when the full safety data are published
Show code
import matplotlib.pyplot as plt
import numpy as np

categories = ['Thrombocytopenia\n(any)', 'Anemia\n(any)', 'Nausea\n(any)',
              'Neutropenia\n(any)', 'Grade ≥3\nTEAEs', 'Discontinuation\ndue to AEs']
sel_rux  = [59.4, 57.3, 57.3, 26.9, 70.1, 14.5]
pbo_rux  = [43.1, 57.8, 17.2, 8.6, 50.0, 8.6]

fig, ax = plt.subplots(figsize=(10, 5))
x = np.arange(len(categories))
w = 0.35
bars1 = ax.bar(x - w/2, sel_rux, w, label='Sel + Rux', color='#e67e22', edgecolor='white')
bars2 = ax.bar(x + w/2, pbo_rux, w, label='Pbo + Rux', color='#95a5a6', edgecolor='white')
for b in bars1:
    ax.text(b.get_x()+b.get_width()/2, b.get_height()+1, f'{b.get_height():.0f}%',
            ha='center', fontsize=8.5, fontweight='bold')
for b in bars2:
    ax.text(b.get_x()+b.get_width()/2, b.get_height()+1, f'{b.get_height():.0f}%',
            ha='center', fontsize=8.5, fontweight='bold')
ax.set_xticks(x); ax.set_xticklabels(categories, fontsize=9)
ax.set_ylabel('Rate (%)', fontsize=11); ax.set_ylim(0, 85)
Text(0, 0.5, 'Rate (%)')
(0.0, 85.0)
Show code
ax.legend(fontsize=10); ax.set_title('Key Adverse Events — SENTRY Phase 3', fontsize=13, fontweight='bold')
ax.spines['top'].set_visible(False); ax.spines['right'].set_visible(False)
plt.tight_layout(); plt.show()

Safety Profile Comparison — Key Adverse Events

15.8 Q16–Q18: Regulatory Path and NCCN Guidelines

15.8.1 Likelihood of FDA Approval

Show code
scorecard <- tibble(
  Factor = c("Co-primary SVR35 met", "Co-primary TSS missed",
             "OS signal (secondary, nominal)", "VAF reduction (exploratory)",
             "Safety / tolerability", "Unmet medical need",
             "Existing approval (selinexor in MM)", "Regulatory precedent (SVR35 alone)",
             "Going concern risk for Karyopharm"),
  `Supports Approval` = c("Strong", "Negative", "Supportive", "Supportive",
                          "Neutral/Negative", "Strong", "Supportive", "Mixed", "Negative"),
  Assessment = c(
    "✓ Robust, statistically significant, clinically meaningful",
    "✗ No trend toward improvement; worse than MANIFEST-2 miss",
    "~ HR 0.43 promising but immature (23 events); CI touches 1.00",
    "~ Modest difference (32% vs 24%); exploratory only",
    "⚠ 70% Gr≥3; 57% nausea; 14.5% discontinuation; 20% more Gr3+ vs ctrl",
    "✓ Only JAKi class approved; genuine unmet need for combinations",
    "✓ Known safety profile; sNDA pathway feasible",
    "~ COMFORT-I approved on SVR35 vs placebo; harder vs active control",
    "⚠ 10-K filing noted substantial doubt about ability to continue as going concern"
  )
)

scorecard |>
  gt() |>
  tab_header(title = md("**Regulatory Approval Scorecard**")) |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(columns = `Supports Approval`,
                                   rows = `Supports Approval` == "Strong")) |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(columns = `Supports Approval`,
                                   rows = `Supports Approval` == "Negative")) |>
  tab_style(style = cell_fill(color = "#fdebd0"),
            locations = cells_body(columns = `Supports Approval`,
                                   rows = `Supports Approval` %in% c("Supportive", "Mixed", "Neutral/Negative"))) |>
  cols_width(Factor ~ px(200), `Supports Approval` ~ px(120), Assessment ~ px(400)) |>
  my_gt_theme()
Regulatory Approval Scorecard
Factor Supports Approval Assessment
Co-primary SVR35 met Strong ✓ Robust, statistically significant, clinically meaningful
Co-primary TSS missed Negative ✗ No trend toward improvement; worse than MANIFEST-2 miss
OS signal (secondary, nominal) Supportive ~ HR 0.43 promising but immature (23 events); CI touches 1.00
VAF reduction (exploratory) Supportive ~ Modest difference (32% vs 24%); exploratory only
Safety / tolerability Neutral/Negative ⚠ 70% Gr≥3; 57% nausea; 14.5% discontinuation; 20% more Gr3+ vs ctrl
Unmet medical need Strong ✓ Only JAKi class approved; genuine unmet need for combinations
Existing approval (selinexor in MM) Supportive ✓ Known safety profile; sNDA pathway feasible
Regulatory precedent (SVR35 alone) Mixed ~ COMFORT-I approved on SVR35 vs placebo; harder vs active control
Going concern risk for Karyopharm Negative ⚠ 10-K filing noted substantial doubt about ability to continue as going concern

Estimated probability of approval: 40–55%

Key factors:

  • What FDA has historically needed in MF: SVR35 has been the primary endpoint for all JAK inhibitor approvals (ruxolitinib, fedratinib, pacritinib, momelotinib). Ruxolitinib was approved on SVR35 vs. placebo. However, the bar has risen — subsequent approvals (fedratinib, pacritinib, momelotinib) all showed SVR + TSS or addressed specific unmet needs (cytopenias)
  • How not hitting Abs-TSS affects approval: It significantly weakens the application. The FDA will ask: “If patients don’t feel better, what is the clinical benefit of spleen reduction alone?” The OS signal partially addresses this but is immature
  • The totality-of-data argument: Karyopharm will present SVR35 (met) + OS signal (supportive) + VAF reduction (supportive) + known safety profile + unmet need. This may be sufficient, particularly if OS data mature
  • Precedent note: If pelabresib receives approval (also missed TSS at p=0.055), it establishes a precedent that SVR35 alone can support combination approval in frontline MF

15.8.2 Potential Label

If approved:

  • Indication: Selinexor in combination with ruxolitinib for intermediate- or high-risk MF in adults not previously treated with JAK inhibitors, with platelets ≥100 × 10⁹/L
  • Dose: 60 mg orally once weekly + ruxolitinib per prescribing information
  • Clinical studies section: Will prominently note TSS co-primary was not met
  • Warnings: Strong language on cytopenias, GI toxicity, monitoring requirements

15.8.3 NCCN Guidelines

Likelihood of NCCN listing: Moderate (50–60%), even before formal FDA approval:

  • Karyopharm has projected potential compendia inclusion in H2 2026
  • NCCN may list selinexor + ruxolitinib as a Category 2A recommendation under “Higher-Risk MF, PLT ≥50×10⁹/L” as an option for JAKi-naïve patients, potentially with a note about the TSS failure
  • Compendia listing could enable off-label reimbursement even before formal approval
  • The current NCCN v1.2026 guidelines already list “JAKi combination” as an option under the anemia management section

15.9 Q19–Q22: Uptake, Clinical Positioning, and Impact on Current Practice

15.9.1 Who Are the Relevant Patients?

Show code
patients <- tibble(
  `Patient Profile` = c(
    "Int-2/High-risk MF with massive splenomegaly (≥1800 cm³)",
    "Pre-transplant patients needing rapid spleen reduction",
    "Patients failing to achieve SVR35 on rux monotherapy by Wk 12",
    "Patients with PLT ≥100 tolerating rux well but inadequate spleen response",
    "Patients whose primary complaint is symptoms (fatigue, night sweats)",
    "Patients with PLT 50–100 × 10⁹/L",
    "Patients with significant GI comorbidities",
    "Elderly patients with limited performance status"
  ),
  `Would I Use Sel+Rux?` = c(
    "Yes — primary population; spleen reduction is the dominant goal",
    "Yes — rapid Week 12 response (49% SVR35) is attractive for bridging",
    "Consider — early switch/addition if rux alone is insufficient",
    "Consider — augmenting spleen response with acceptable safety",
    "No — no TSS benefit; rux monotherapy is sufficient for symptoms",
    "No — below eligibility threshold; use pacritinib or momelotinib",
    "Caution — 57% nausea rate may be prohibitive",
    "Caution — 70% Gr≥3 TEAEs; risk-benefit less favorable"
  ),
  Priority = c("High", "High", "Moderate", "Moderate", "Low", "Ineligible", "Low", "Low")
)

patients |>
  gt() |>
  tab_header(title = md("**Patient Selection Framework — Selinexor + Ruxolitinib**")) |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(columns = Priority, rows = Priority == "High")) |>
  tab_style(style = cell_fill(color = "#fdebd0"),
            locations = cells_body(columns = Priority, rows = Priority == "Moderate")) |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(columns = Priority, rows = Priority %in% c("Low", "Ineligible"))) |>
  cols_width(`Patient Profile` ~ px(300), `Would I Use Sel+Rux?` ~ px(320), Priority ~ px(90)) |>
  my_gt_theme()
Patient Selection Framework — Selinexor + Ruxolitinib
Patient Profile Would I Use Sel+Rux? Priority
Int-2/High-risk MF with massive splenomegaly (≥1800 cm³) Yes — primary population; spleen reduction is the dominant goal High
Pre-transplant patients needing rapid spleen reduction Yes — rapid Week 12 response (49% SVR35) is attractive for bridging High
Patients failing to achieve SVR35 on rux monotherapy by Wk 12 Consider — early switch/addition if rux alone is insufficient Moderate
Patients with PLT ≥100 tolerating rux well but inadequate spleen response Consider — augmenting spleen response with acceptable safety Moderate
Patients whose primary complaint is symptoms (fatigue, night sweats) No — no TSS benefit; rux monotherapy is sufficient for symptoms Low
Patients with PLT 50–100 × 10⁹/L No — below eligibility threshold; use pacritinib or momelotinib Ineligible
Patients with significant GI comorbidities Caution — 57% nausea rate may be prohibitive Low
Elderly patients with limited performance status Caution — 70% Gr≥3 TEAEs; risk-benefit less favorable Low

15.9.2 Impact on Current JAKi Use

How this affects my use of ruxolitinib monotherapy, pacritinib, momelotinib, and fedratinib:

  • Ruxolitinib monotherapy: Remains my frontline standard for most patients. Sel+Rux would be considered specifically for patients where spleen reduction is the primary goal, not for symptom-predominant disease. Rux monotherapy is simpler, better tolerated, and achieves equivalent symptom control
  • Pacritinib: Unaffected. Pacritinib occupies a distinct niche (PLT <50×10⁹/L) that does not overlap with SENTRY eligibility (PLT ≥100). These are different patient populations
  • Momelotinib: Unaffected for anemia-predominant MF. Momelotinib’s unique value is transfusion independence and hemoglobin improvement, which selinexor does not address
  • Fedratinib: Minimal impact. Fedratinib is primarily used in the second-line (post-ruxolitinib) setting. In the frontline setting where fedratinib competes with ruxolitinib, the SENTRY data do not change fedratinib’s positioning

15.9.3 Uptake Projections

Show code
uptake_curve <- tibble(
  Quarter = c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8",
              "Q9", "Q10", "Q11", "Q12"),
  Year = c(rep("Year 1", 4), rep("Year 2", 4), rep("Year 3", 4)),
  Pct_of_eligible = c(3, 5, 8, 12, 15, 18, 22, 25, 28, 30, 32, 35),
  Setting = "Frontline MF (PLT ≥100, Int-2/High)"
) |> mutate(Quarter_num = row_number())

ggplot(uptake_curve, aes(x = Quarter_num, y = Pct_of_eligible)) +
  geom_line(color = pal$sel, linewidth = 1.5) +
  geom_point(color = pal$sel, size = 3) +
  geom_area(alpha = 0.15, fill = pal$sel) +
  geom_hline(yintercept = 25, linetype = "dashed", color = "grey50") +
  annotate("text", x = 3, y = 27, label = "Realistic peak: ~25–35%",
           fontsize = 3.5, color = "grey40") +
  scale_x_continuous(breaks = c(1, 4, 8, 12),
                     labels = c("Launch", "Year 1", "Year 2", "Year 3")) +
  scale_y_continuous(limits = c(0, 40), labels = function(x) paste0(x, "%")) +
  labs(title = "Projected Uptake — Selinexor + Ruxolitinib in Frontline MF",
       subtitle = "Among eligible patients (Int-2/High, PLT ≥100, spleen-predominant)",
       x = NULL, y = "% of Eligible Patients") +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))

Projected Uptake Curve — If Approved

15.9.4 How Quickly Would I Start Using This?

Slow adoption, academic-center-led:

  • Immediately upon approval/compendia listing: I would use this for select patients where spleen reduction is the dominant clinical priority — specifically:
    • Patients with massive splenomegaly causing mechanical symptoms, portal hypertension, or who need rapid spleen reduction prior to transplant
    • This would represent approximately 10–15% of my new frontline MF starts
  • Within 6–12 months: As I gain comfort with nausea management and see real-world durability data, I might expand to 15–25% of eligible patients
  • At peak (Year 2–3): If OS data mature favorably and compendia/guidelines are updated, potentially 25–35% of eligible frontline patients with spleen-predominant disease

Factors that would accelerate adoption:

  • Confirmation of the OS signal with longer follow-up
  • Publication of bone marrow fibrosis improvement data
  • Real-world evidence of effective nausea prophylaxis protocols
  • NCCN Category 1 or 2A recommendation

Factors that would limit adoption:

  • Persistent OS immaturity at the time of publication
  • Pelabresib approval with stronger SVR35 data (66% vs 50%)
  • Emergence of new combinations with better multi-dimensional profiles
  • Community oncologist reluctance due to nausea burden and complexity

15.10 Additional Observations

15.10.1 Phase 1 to Phase 3 Attrition

Show code
bench_score <- tibble(
  Endpoint = c("SVR35 (Week 24)", "TSS50 (Week 24)", "Abs-TSS Change",
               "Grade ≥3 Anemia", "Discontinuation Rate", "OS Signal"),
  `Phase 1 (n=14)` = c("79%", "58%", "−18.5 pts", "43%", "TBD", "N/A"),
  `Phase 3 (n=353)` = c("49.8%", "Not reported", "−9.89 pts",
                         "57.3% any grade", "14.5%", "HR 0.43"),
  `Attrition` = c("−29 pts (major)", "Endpoint failed", "−8.6 pts (major)",
                   "Worse", "At threshold", "Exceeded expectations")
)

bench_score |>
  gt() |>
  tab_header(title = md("**Phase 1 → Phase 3 Attrition**"),
             subtitle = "A cautionary tale about extrapolating from n=14") |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(columns = Attrition,
                                   rows = Attrition %in% c("−29 pts (major)", "Endpoint failed",
                                                            "−8.6 pts (major)", "Worse"))) |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(columns = Attrition,
                                   rows = Attrition %in% c("At threshold", "Exceeded expectations"))) |>
  my_gt_theme()
Phase 1 → Phase 3 Attrition
A cautionary tale about extrapolating from n=14
Endpoint Phase 1 (n=14) Phase 3 (n=353) Attrition
SVR35 (Week 24) 79% 49.8% −29 pts (major)
TSS50 (Week 24) 58% Not reported Endpoint failed
Abs-TSS Change −18.5 pts −9.89 pts −8.6 pts (major)
Grade ≥3 Anemia 43% 57.3% any grade Worse
Discontinuation Rate TBD 14.5% At threshold
OS Signal N/A HR 0.43 Exceeded expectations

15.10.2 Emerging Pipeline Context

Show code
pipeline <- tibble(
  Agent = c("Selinexor + Rux", "Pelabresib + Rux", "INCA033989 (mutCALR Ab)",
            "Navtemadlin (MDM2i)", "Imetelstat", "Elritercept (TAK-226)"),
  Mechanism = c("XPO1i + JAKi", "BETi + JAKi", "Anti-mutCALR mAb",
                "MDM2 inhibitor", "Telomerase inhibitor", "Activin trap"),
  Setting = c("1L (JAKi-naïve)", "1L (JAKi-naïve)", "mutCALR ET/MF",
              "2L+ MF", "2L+ MF (approved)", "MF anemia"),
  `Key Result` = c("SVR35 50% (met); TSS (NS); OS HR 0.43",
                    "SVR35 66% (met); TSS (NS, p=0.055)",
                    "80% ORR (ET); 90% VAF↓; Ph1", "Phase 3 ongoing",
                    "Approved; OS benefit in 2L", "Phase 2; anemia improvement"),
  `Disease Mod.` = c("Modest (VAF Δ 8%)", "Fibrosis improvement",
                      "Strong (selective clone depletion)", "Expected (p53)",
                      "Yes (telomere suppression)", "Limited")
)

pipeline |>
  gt() |>
  tab_header(title = md("**MF Pipeline — Contextualizing SENTRY**")) |>
  tab_style(style = cell_fill(color = "#fdebd0"), locations = cells_body(rows = 1)) |>
  cols_width(Agent ~ px(150), `Key Result` ~ px(230)) |>
  my_gt_theme()
MF Pipeline — Contextualizing SENTRY
Agent Mechanism Setting Key Result Disease Mod.
Selinexor + Rux XPO1i + JAKi 1L (JAKi-naïve) SVR35 50% (met); TSS (NS); OS HR 0.43 Modest (VAF Δ 8%)
Pelabresib + Rux BETi + JAKi 1L (JAKi-naïve) SVR35 66% (met); TSS (NS, p=0.055) Fibrosis improvement
INCA033989 (mutCALR Ab) Anti-mutCALR mAb mutCALR ET/MF 80% ORR (ET); 90% VAF↓; Ph1 Strong (selective clone depletion)
Navtemadlin (MDM2i) MDM2 inhibitor 2L+ MF Phase 3 ongoing Expected (p53)
Imetelstat Telomerase inhibitor 2L+ MF (approved) Approved; OS benefit in 2L Yes (telomere suppression)
Elritercept (TAK-226) Activin trap MF anemia Phase 2; anemia improvement Limited

16 Summary

Show code
conclusions <- tibble(
  Domain = c("Spleen Response", "Symptom Control", "Overall Survival",
             "Disease Modification", "Safety", "Regulatory Path",
             "Clinical Positioning", "Competitive Standing"),
  Assessment = c(
    "Strong — near-doubling of SVR35, rapid onset (Wk 12), sustained through Wk 36",
    "No benefit — identical TSS improvement; consistent with MANIFEST-2/TRANSFORM-1 pattern",
    "Promising but immature — HR 0.43 with only 23 events; needs ≥24-month follow-up",
    "Early signal — modest VAF difference (32% vs 24%); BM fibrosis data pending",
    "Manageable but burdensome — 70% Gr≥3, 57% nausea, 14.5% discontinuation",
    "Uncertain (40–55%) — met 1 of 2 co-primaries; sNDA engagement is next step",
    "Niche: spleen-predominant, transplant-bridge, PLT ≥100 patients",
    "Below pelabresib on SVR35; potentially differentiated on OS if confirmed"
  ),
  `Bottom Line` = c(
    "✓ Practice-relevant for spleen-focused management",
    "✗ Does not support adding selinexor for symptom control",
    "~ Could become THE key differentiator if confirmed",
    "~ Hypothesis-generating; far from proven",
    "⚠ Requires proactive antiemetic protocols and monitoring",
    "~ OS maturation is the single most important variable",
    "~ Slow academic-led adoption; 10–25% of eligible patients initially",
    "~ Second-choice combo unless OS advantage emerges"
  )
)

conclusions |>
  gt() |>
  tab_header(title = md("**SENTRY Phase 3 — Final Assessment**")) |>
  tab_style(style = cell_fill(color = "#d5f5e3"),
            locations = cells_body(rows = Domain == "Spleen Response")) |>
  tab_style(style = cell_fill(color = "#fadbd8"),
            locations = cells_body(rows = Domain == "Symptom Control")) |>
  tab_style(style = cell_fill(color = "#fdebd0"),
            locations = cells_body(rows = !Domain %in% c("Spleen Response", "Symptom Control"))) |>
  cols_width(Domain ~ px(150), Assessment ~ px(350), `Bottom Line` ~ px(280)) |>
  my_gt_theme()
SENTRY Phase 3 — Final Assessment
Domain Assessment Bottom Line
Spleen Response Strong — near-doubling of SVR35, rapid onset (Wk 12), sustained through Wk 36 ✓ Practice-relevant for spleen-focused management
Symptom Control No benefit — identical TSS improvement; consistent with MANIFEST-2/TRANSFORM-1 pattern ✗ Does not support adding selinexor for symptom control
Overall Survival Promising but immature — HR 0.43 with only 23 events; needs ≥24-month follow-up ~ Could become THE key differentiator if confirmed
Disease Modification Early signal — modest VAF difference (32% vs 24%); BM fibrosis data pending ~ Hypothesis-generating; far from proven
Safety Manageable but burdensome — 70% Gr≥3, 57% nausea, 14.5% discontinuation ⚠ Requires proactive antiemetic protocols and monitoring
Regulatory Path Uncertain (40–55%) — met 1 of 2 co-primaries; sNDA engagement is next step ~ OS maturation is the single most important variable
Clinical Positioning Niche: spleen-predominant, transplant-bridge, PLT ≥100 patients ~ Slow academic-led adoption; 10–25% of eligible patients initially
Competitive Standing Below pelabresib on SVR35; potentially differentiated on OS if confirmed ~ Second-choice combo unless OS advantage emerges
NoteFinal Perspective

SENTRY represents a meaningful but incomplete advance in frontline MF. The spleen response is robust and practice-relevant. The absence of symptom improvement limits broad applicability. The OS signal is the most intriguing finding — if confirmed with maturation, it could fundamentally reposition this combination. Until then, selinexor + ruxolitinib will occupy a niche role for spleen-predominant disease at academic MPN centers.

The most important thing to watch for: OS data maturation over the next 12–18 months. This single variable will determine whether SENTRY is remembered as a marginally positive trial or a paradigm-shifting one.

17 References

  1. Verstovsek S, et al. N Engl J Med 2012;366:799-807.
  2. Rampal RK, et al. Nat Med 2025;31:1531-1538.
  3. Mascarenhas J, et al. J Clin Oncol 2023;41:4993-5004.
  4. Coltro G, et al. Cancer Medicine 2023.
  5. Karyopharm Therapeutics. Phase 3 SENTRY Topline Results. March 24, 2026.
  6. Yan D, et al. Clin Cancer Res 2019;25(7):2323-2335.
  7. Ross DM, et al. Blood 2024.
  8. Passamonti F, et al. Blood 2010;115(9):1703-1708.
  9. NCCN Clinical Practice Guidelines v1.2026. Myeloproliferative Neoplasms.

Document generated: 2026-08-19 | Analysis based on topline data; conclusions may evolve with full publication.